package com.maxio.controller;


import com.maxio.domain.R;
import com.maxio.domain.dto.EmpDTO.EmpAddDTO;
import com.maxio.domain.dto.EmpDTO.EmpEditDTO;
import com.maxio.domain.query.EmpQuery;
import com.maxio.service.IEmpService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 员工表 前端控制器
 * </p>
 *
 * @author enhuan
 * @since 2024-05-28
 */
@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {

    @Autowired
    private IEmpService empService;

    /**
     * 新增员工信息
     */
    @ApiOperation(value = "新增员工信息")
    @PostMapping("/save")
    public R<?> saveEmp(@RequestBody EmpAddDTO addDTO) {
        return R.ok(empService.saveEmp(addDTO));
    }

    /**
     * 单个查询员工信息
     */
    @ApiOperation(value = "单个查询员工信息")
    @GetMapping("/selectById/{id}")
    public R<?> selectEmpById(@PathVariable Long id) {
        return R.ok(empService.selectById(id));
    }

    /**
     * 修改当前员工信息
     */
    @ApiOperation(value = "修改当前员工信息")
    @PutMapping("/update")
    public R<?> updateEmpById(@RequestBody EmpEditDTO editDTO) {
        return R.ok(empService.updateEmpById(editDTO));
    }

    /**
     * 单个删除员工信息
     */
    @ApiOperation(value = "单个删除员工信息")
    @DeleteMapping("/delete/{id}")
    public R<?> deleteEmpById(@PathVariable Long id) {
        return R.ok(empService.deleteById(id));
    }

    /**
     * 分页查询员工信息
     */
    @ApiOperation(value = "分页查询员工信息")
    @GetMapping("/selectPage")
    public R<?> selectEmpPage(EmpQuery userQuery) {
        return R.ok(empService.selectPage(userQuery));
    }

}
